home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / mix / net.h < prev   
C/C++ Source or Header  |  2005-10-18  |  3KB  |  202 lines

  1. #ifndef NET_H
  2. #define NET_H
  3.  
  4. #include <mix/lmconfig.h>
  5. #undef WORDS_BIGENDIAN    /* this is a little endian machine */
  6.  
  7. #ifndef _GNU_SOURCE
  8. #define _GNU_SOURCE
  9. #endif
  10. #include <mix/aes.h>
  11. #include <mix/misc.h>
  12. #ifdef HAVE_SYS_TYPES_H
  13. #include <sys/types.h>
  14. #endif
  15. #ifdef HAVE_SYS_SOCKET_H
  16. #include <sys/socket.h>
  17. #endif
  18. #ifdef HAVE_NETDB_H
  19. #include <netdb.h>
  20. #endif
  21. #ifdef HAVE_NETINET_IN_H
  22. #include <netinet/in.h>
  23. #endif
  24. #ifdef HAVE_ARPA_INET_H
  25. #include <arpa/inet.h>
  26. #endif
  27.  
  28. #ifndef INADDR_ANY
  29. #define INADDR_ANY              ((unsigned) 0x00000000)
  30. #endif
  31.  
  32. #ifndef s8
  33. typedef char s8;
  34. #endif
  35. #ifndef u8
  36. typedef unsigned char u8;
  37. #endif
  38. #ifndef s16
  39. typedef short int s16;
  40. #endif
  41. #ifndef u16
  42. typedef unsigned short int u16;
  43. #endif
  44. #ifndef s32
  45. typedef int s32;
  46. #endif
  47. #ifndef u32
  48. typedef unsigned int u32;
  49. #endif
  50.  
  51. #if defined(WORDS_BIGENDIAN) && !defined(htons) && !defined(htonl)
  52. #define ntohl(x)        (x)
  53. #define ntohs(x)        (x)
  54. #define htonl(x)        (x)
  55. #define htons(x)        (x)
  56. #endif
  57.  
  58. /* IP protocols, common */
  59. #define P_IP 0
  60. #define P_ICMP 1
  61. #define P_IGMP 2
  62. #define P_TCP 6
  63. #define P_UDP 17
  64. #define P_RAW 255
  65.  
  66. #define M_SIN   16
  67. #define M_ETH   14
  68. #define M_IP    20
  69. #define M_ICMP   8
  70. #define M_TCP   20
  71. #define M_UDP    8
  72.  
  73. #ifdef LM_USE_NET2
  74. #ifdef WORDS_BIGENDIAN
  75. #define LIBNET_BIG_ENDIAN 1
  76. #else
  77. #define LIBNET_LIL_ENDIAN 1
  78. #endif
  79. #ifdef __cplusplus
  80. extern "C" {
  81. #include <libnet.h>
  82. #include <pcap.h>
  83. }
  84. #else
  85. #include <libnet.h>
  86. #include <pcap.h>
  87. #endif
  88.  
  89. extern char *lm_device;
  90. extern struct libnet_link_int *lm_fd;
  91. extern unsigned char *lm_curpkt;
  92. extern struct ether_addr *srcmacp;
  93. extern int lm_curpsiz;
  94. extern pcap_t *pcap_fd;
  95. extern int pcap_l2offset;
  96. extern char tfn2k2_command;
  97. extern int tfn2k2_lastsize;
  98. #endif
  99.  
  100. struct sa
  101.   {
  102.     u16 fam, dp;
  103.     u32 add;
  104.     u8 zero[8];
  105.   };
  106.  
  107. struct su
  108.   {
  109.     u16 fam;
  110.     char path[108];
  111.   };
  112.  
  113. struct eth
  114. {
  115.  unsigned char dst[6];
  116.  unsigned char src[6];
  117.  unsigned short proto;
  118. };
  119.  
  120. #define ETHALL          0x0003
  121. #define ETHIP           0x0800
  122.  
  123. struct lmip
  124.   {
  125. #ifndef WORDS_BIGENDIAN
  126.     u8 ihl:4, ver:4;
  127. #else
  128.     u8 ver:4, ihl:4;
  129. #endif
  130.     u8 tos;
  131.     u16 tl, id, off;
  132.     u8 ttl, pro;
  133.     u16 sum;
  134.     u32 src, dst;
  135.   };
  136.  
  137. struct lmtcp
  138.   {
  139.     u16 src, dst;
  140.     u32 seq, ack;
  141. #ifndef WORDS_BIGENDIAN
  142.     u8 x2:4, off:4;
  143. #else
  144.     u8 off:4, x2:4;
  145. #endif
  146.     u8 flg;            /* flag1 | flag2 */
  147. #define FIN  0x01
  148. #define SYN  0x02
  149. #define RST  0x04
  150. #define PUSH 0x08
  151. #define ACK  0x10
  152. #define URG  0x20
  153.     u16 win, sum, urp;
  154.   };
  155.  
  156. struct lmtcp2
  157.   {
  158.     u16 src, dst;
  159.     u32 seq, ackseq;
  160. #ifndef WORDS_BIGENDIAN
  161.     u16 res1:4;
  162.     u16 doff:4;
  163.     u16 fin:1;
  164.     u16 syn:1;
  165.     u16 rst:1;
  166.     u16 psh:1;
  167.     u16 ack:1;
  168.     u16 urg:1;
  169.     u16 res2:2;
  170. #else
  171.     u16 doff:4;
  172.     u16 res1:4;
  173.     u16 res2:2;
  174.     u16 urg:1;
  175.     u16 ack:1;
  176.     u16 psh:1;
  177.     u16 rst:1;
  178.     u16 syn:1;
  179.     u16 fin:1;
  180. #endif
  181.     u16 win, sum, urp;
  182.   };
  183.  
  184. struct lmudp
  185.   {
  186.     u16 src, dst, len, sum;
  187.   };
  188.  
  189. struct lmicmp
  190.   {
  191.     u8 type, code;
  192.     u16 sum;
  193.     u16 id, seq;
  194.   };
  195.  
  196. struct tribe
  197.   {
  198.     char start, id, end;
  199.   };
  200.  
  201. #endif
  202.